#include<stdio.h>
void swap(char* e1,char* e2,int width)
{
    char temp;
   for(int i=0;i<width;i++)
   {
       temp=*e1;
       *e1=*e2;
       *e2=temp;
       e1++;
       e2++;
   }
}
int compare(void* e1,void* e2)
{
   return  *((int*)e2)-*((int*)e1);
}
void jiaosqort(void* target,int sz, int width,int (*compare)(void* e1,void* e2))
{
    for(int i=0;i<sz-1;i++)
    {
        for(int j=0;j<sz-1-i;j++)
        {
            if(compare((char* )(target+j*width),(char*) (target+(j+1)*width))>0)
            {
                swap((char* )(target+j*width),(char*)target+(j+1)*width,width);
            }
        }
    }
}
int main()
{
int a[]={0,5,2};
int sz=sizeof(a)/sizeof(a[0]);
jiaosqort(a,sz,sizeof(a[0]),compare);
for(int i=0;i<sz;i++)
{
    printf("%d ",a[i]);
}
    return 0;
}